|
|
@@ -4,24 +4,22 @@ namespace app\api\controller;
|
|
|
|
|
|
|
|
|
use app\common\controller\Api;
|
|
|
+use Monolog\Handler\IFTTTHandler;
|
|
|
+use Overtrue\Socialite\Providers\WeWorkProvider;
|
|
|
use think\Db;
|
|
|
use think\Request;
|
|
|
+use function fast\e;
|
|
|
|
|
|
+/**
|
|
|
+ *
|
|
|
+ * 生产单衣进度管理
|
|
|
+ */
|
|
|
class MonthlyGarments extends Api
|
|
|
{
|
|
|
protected $noNeedLogin = ['*'];
|
|
|
protected $noNeedRight = ['*'];
|
|
|
|
|
|
- public function _initialize()
|
|
|
- {
|
|
|
- if (isset($_SERVER['HTTP_ORIGIN'])) {
|
|
|
- header('Access-Control-Expose-Headers: __token__');
|
|
|
- }
|
|
|
- check_cors_request();
|
|
|
- parent::_initialize();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
+ /**
|
|
|
* 样衣进度左侧数据
|
|
|
*/
|
|
|
public function getDateTree()
|
|
|
@@ -32,35 +30,224 @@ class MonthlyGarments extends Api
|
|
|
|
|
|
$results = \db('月度样衣进度')
|
|
|
->field([
|
|
|
- 'DATE_FORMAT(下单日期, "%Y-%m-%d")' => '日期',
|
|
|
- 'DATE_FORMAT(下单日期, "%Y-%m")' => '年月'
|
|
|
+ 'DATE_FORMAT(Sys_rq, "%Y-%m")' => '年月',
|
|
|
+ '客户编号',
|
|
|
+ 'COUNT(*) as total'
|
|
|
])
|
|
|
->whereNull('Mod_rq')
|
|
|
- ->whereNotNull('下单日期')
|
|
|
- ->order('下单日期 ASC')
|
|
|
+ ->group('年月, 客户编号')
|
|
|
+ ->order('年月 DESC')
|
|
|
->select();
|
|
|
|
|
|
$formattedData = [];
|
|
|
|
|
|
foreach ($results as $row) {
|
|
|
$yearMonth = $row['年月'];
|
|
|
- $monthDay = $row['日期'];
|
|
|
+ $customerCode = $row['客户编号'];
|
|
|
+ $total = $row['total'];
|
|
|
|
|
|
if (!isset($formattedData[$yearMonth])) {
|
|
|
$formattedData[$yearMonth] = [];
|
|
|
}
|
|
|
|
|
|
- if (!in_array($monthDay, $formattedData[$yearMonth])) {
|
|
|
- $formattedData[$yearMonth][] = $monthDay;
|
|
|
- }
|
|
|
+ $formattedData[$yearMonth][] = [
|
|
|
+ '客户编号' => $customerCode,
|
|
|
+ 'total' => $total
|
|
|
+ ];
|
|
|
}
|
|
|
|
|
|
krsort($formattedData);
|
|
|
|
|
|
- foreach ($formattedData as &$dates) {
|
|
|
- rsort($dates);
|
|
|
+ $this->success('成功', $formattedData);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 样衣进度列表数据
|
|
|
+ */
|
|
|
+ public function getMonthlyGarmentsList()
|
|
|
+ {
|
|
|
+ if (!$this->request->isGet()) {
|
|
|
+ $this->error('请求错误');
|
|
|
}
|
|
|
|
|
|
- $this->success('成功', $formattedData);
|
|
|
+ $yearMonth = $this->request->param('sys_rq', '');
|
|
|
+ $customerCode = $this->request->param('customer', '');
|
|
|
+ $search = $this->request->param('search', '');
|
|
|
+
|
|
|
+ $query = \db('月度样衣进度')
|
|
|
+ ->whereNull('Mod_rq');
|
|
|
+
|
|
|
+ if ($yearMonth) {
|
|
|
+ $query->where('DATE_FORMAT(Sys_rq, "%Y-%m")', $yearMonth);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($customerCode) {
|
|
|
+ $query->where('客户编号', $customerCode);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($search) {
|
|
|
+ $query->where(function ($q) use ($search) {
|
|
|
+ $q->where('客户编号', 'like', "%{$search}%")
|
|
|
+ ->whereOr('款号', 'like', "%{$search}%")
|
|
|
+ ->whereOr('款式', 'like', "%{$search}%");
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ $results = $query->order('Sys_rq DESC')->select();
|
|
|
+
|
|
|
+ $this->success('成功', [
|
|
|
+ 'result' => $results,
|
|
|
+ 'total' => count($results)
|
|
|
+ ]);
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 样衣进度新增数据
|
|
|
+ */
|
|
|
+ public function saveMonthlyGarments()
|
|
|
+ {
|
|
|
+ if (!$this->request->isPost()) {
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+
|
|
|
+ $data = $this->request->post();
|
|
|
+
|
|
|
+ $customerCode = $data['客户编号'] ?? '';
|
|
|
+ $styleNo = $data['款号'] ?? '';
|
|
|
+ $style = $data['款式'] ?? '';
|
|
|
+ $sampleType = $data['样办种类'] ?? '';
|
|
|
+ $department = $data['做办部门'] ?? '';
|
|
|
+ $quantity = isset($data['数量']) && $data['数量'] !== '' ? (int)$data['数量'] : 0;
|
|
|
+ $orderDate = (!empty($data['下单日期'])) ? "'{$data['下单日期']}'" : 'NULL';
|
|
|
+ $fabricProgress = $data['面料进度'] ?? '';
|
|
|
+ $auxiliaryProgress = $data['辅料进度'] ?? '';
|
|
|
+ $planDeliveryDate = (!empty($data['计划交办日期'])) ? "'{$data['计划交办日期']}'" : 'NULL';
|
|
|
+ $actualDeliveryDate = (!empty($data['实际交办日期'])) ? "'{$data['实际交办日期']}'" : 'NULL';
|
|
|
+ $remark = $data['备注'] ?? '';
|
|
|
+ $sysId = $data['Sys_id'] ?? '';
|
|
|
+ $sysRq = date('Y-m-d H:i:s');
|
|
|
+
|
|
|
+ $sql = "INSERT INTO `月度样衣进度` (`客户编号`, `款号`, `款式`, `样办种类`, `做办部门`, `数量`, `下单日期`, `面料进度`, `辅料进度`, `计划交办日期`, `实际交办日期`, `备注`, `Sys_id`, `Sys_rq`, `Mod_rq`) VALUES ('{$customerCode}', '{$styleNo}', '{$style}', '{$sampleType}', '{$department}', {$quantity}, {$orderDate}, '{$fabricProgress}', '{$auxiliaryProgress}', {$planDeliveryDate}, {$actualDeliveryDate}, '{$remark}', '{$sysId}', '{$sysRq}', NULL)";
|
|
|
+
|
|
|
+ $result = \db()->execute($sql);
|
|
|
+
|
|
|
+ if ($result !== false) {
|
|
|
+ $lastId = \db('月度样衣进度')->getLastInsID();
|
|
|
+ $this->success('保存成功', ['id' => $lastId]);
|
|
|
+ } else {
|
|
|
+ $this->error('保存失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 样衣进度修改数据
|
|
|
+ */
|
|
|
+ public function updateMonthlyGarments()
|
|
|
+ {
|
|
|
+ if (!$this->request->isPost()) {
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+
|
|
|
+ $data = $this->request->post();
|
|
|
+ $uniqId = $data['UniqId'] ?? '';
|
|
|
+ $nickName = $data['nickName'] ?? '';
|
|
|
+
|
|
|
+ if (!$uniqId) {
|
|
|
+ $this->error('UniqId不能为空');
|
|
|
+ }
|
|
|
+
|
|
|
+ $oldData = \db('月度样衣进度')->where('UniqId', $uniqId)->find();
|
|
|
+
|
|
|
+ $customerCode = $data['客户编号'] ?? '';
|
|
|
+ $styleNo = $data['款号'] ?? '';
|
|
|
+ $style = $data['款式'] ?? '';
|
|
|
+ $sampleType = $data['样办种类'] ?? '';
|
|
|
+ $department = $data['做办部门'] ?? '';
|
|
|
+ $quantity = isset($data['数量']) && $data['数量'] !== '' ? (int)$data['数量'] : 0;
|
|
|
+ $orderDate = (!empty($data['下单日期'])) ? "'{$data['下单日期']}'" : 'NULL';
|
|
|
+ $fabricProgress = $data['面料进度'] ?? '';
|
|
|
+ $auxiliaryProgress = $data['辅料进度'] ?? '';
|
|
|
+ $planDeliveryDate = (!empty($data['计划交办日期'])) ? "'{$data['计划交办日期']}'" : 'NULL';
|
|
|
+ $actualDeliveryDate = (!empty($data['实际交办日期'])) ? "'{$data['实际交办日期']}'" : 'NULL';
|
|
|
+ $remark = $data['备注'] ?? '';
|
|
|
+ $sysRq = date('Y-m-d H:i:s');
|
|
|
+
|
|
|
+ $sql = "UPDATE `月度样衣进度` SET `客户编号`='{$customerCode}', `款号`='{$styleNo}', `款式`='{$style}', `样办种类`='{$sampleType}', `做办部门`='{$department}', `数量`={$quantity}, `下单日期`={$orderDate}, `面料进度`='{$fabricProgress}', `辅料进度`='{$auxiliaryProgress}', `计划交办日期`={$planDeliveryDate}, `实际交办日期`={$actualDeliveryDate}, `备注`='{$remark}', `Sys_rq`='{$sysRq}' WHERE `UniqId`='{$uniqId}'";
|
|
|
+
|
|
|
+ $result = \db()->query($sql);
|
|
|
+
|
|
|
+ if ($result !== false) {
|
|
|
+ $this->saveLogs($uniqId, $oldData, $data, $nickName);
|
|
|
+ $this->success('修改成功');
|
|
|
+ } else {
|
|
|
+ $this->error('修改失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public function deleteMonthlyGarments()
|
|
|
+ {
|
|
|
+ if (!$this->request->isPost()) {
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+
|
|
|
+ $data = $this->request->post();
|
|
|
+ $uniqId = $data['UniqId'] ?? '';
|
|
|
+ $nickName = $data['nickName'] ?? '';
|
|
|
+
|
|
|
+ if (!$uniqId) {
|
|
|
+ $this->error('UniqId不能为空');
|
|
|
+ }
|
|
|
+
|
|
|
+ $modRq = date('Y-m-d H:i:s');
|
|
|
+ $sql = "UPDATE `月度样衣进度` SET `Mod_rq`='{$modRq}' WHERE `UniqId`='{$uniqId}'";
|
|
|
+ $result = \db()->query($sql);
|
|
|
+
|
|
|
+ if ($result !== false) {
|
|
|
+ $this->success('删除成功');
|
|
|
+ } else {
|
|
|
+ $this->error('删除失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 样衣进度存储日志数据
|
|
|
+ */
|
|
|
+ private function saveLogs($uniqId, $oldData, $newData, $operator)
|
|
|
+ {
|
|
|
+ $fields = ['客户编号', '款号', '款式', '样办种类', '做办部门', '数量', '下单日期', '面料进度', '辅料进度', '计划交办日期', '实际交办日期', '备注'];
|
|
|
+ $modifyTime = date('Y-m-d H:i:s');
|
|
|
+
|
|
|
+ foreach ($fields as $field) {
|
|
|
+ $oldValue = $oldData[$field] ?? '';
|
|
|
+ $newValue = $newData[$field] ?? '';
|
|
|
+
|
|
|
+ if ((string)$oldValue !== (string)$newValue) {
|
|
|
+ $sql = "INSERT INTO `样衣进度日志` (`Uniqid`, `ModifyField`, `OriginalValue`, `Modified`, `修改人`, `修改日期`) VALUES ('{$uniqId}', '{$field}', '{$oldValue}', '{$newValue}', '{$operator}', '{$modifyTime}')";
|
|
|
+ \db()->query($sql);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 样衣进度日志数据
|
|
|
+ */
|
|
|
+ public function getLogs()
|
|
|
+ {
|
|
|
+ if (!$this->request->isGet()) {
|
|
|
+ $this->error('请求错误');
|
|
|
+ }
|
|
|
+
|
|
|
+ $uniqId = $this->request->get('UniqId') ?? '';
|
|
|
+
|
|
|
+ if (!$uniqId) {
|
|
|
+ $this->error('UniqId不能为空');
|
|
|
+ }
|
|
|
+
|
|
|
+ $logs = \db('样衣进度日志')
|
|
|
+ ->where('Uniqid', $uniqId)
|
|
|
+ ->order('修改日期', 'desc')
|
|
|
+ ->select();
|
|
|
+
|
|
|
+ $this->success('获取成功', ['result' => $logs, 'total' => count($logs)]);
|
|
|
}
|
|
|
-}
|
|
|
+}
|